/**
 * 更新自动回复
 */

//引入Q模块
var Q = require('q');

//update入口函数
var index = function(getData, postData, config, _redis, db) {
	var deferred = Q.defer();

	//判断是否存在更新数据列表参数
	if(postData.updateAutoReplyList && postData.updateAutoReplyList[0]) {

		//用于单次更新的数据临时变量
		var updateData = {};

		//当前循环的index
		var updateItemIndex = 0;

		//设置更新后的时间戳
		updateData.timestamp = parseInt(Date.now() / 1000);

		//遍历更新的数据列表
		postData.updateAutoReplyList.forEach(function(updateItem) {

			//判断此项中是否存在关键字或回复内容参数，如果存在则加入更新的数据中
			if(updateItem.keyWord) {
				updateData.keyWord = updateItem.keyWord;
			}
			if(updateItem.replyContent) {
				updateData.replyContent = updateItem.replyContent;
			}

			//为了避免重复时间戳重复，多个更新时时间戳采用递增，未来时间
			updateData.timestamp++;

			//执行当前的自动回复项更新
			db.update('autoReplyContents', {
				
				//查找对应修改项的时间戳
				timestamp: parseInt(updateItem.timestamp)
			
			}, updateData).then(function() {
				
				//判断当前是否已经完成所有修改任务，完成则返回成功
				if(++updateItemIndex == postData.updateAutoReplyList.length) {
					deferred.resolve(1);
				}

			}, function() {

				//修改自动回复数据时失败
				deferred.reject('-0074');
			});
		});
	}
	else {
		//对自动回复数据进行操作时参数不正确
		deferred.reject('-0076');
	}
	return deferred.promise;	
}

//暴露接口
module.exports = {
	index: index
};